package top.mcwebsite.playandroid.business.me.impl.coin.vm

import top.mcwebsite.playandroid.common.user.api.model.CoinInfo
import top.mcwebsite.playandroid.lib.mvi.base.IIntent
import top.mcwebsite.playandroid.lib.mvi.base.IUiEffect
import top.mcwebsite.playandroid.lib.mvi.base.IUiState

data class CoinUiState(
    val message: String = "",
    val coinCount: Int? = null,
    val coinRuleDialogVisible: Boolean = false,
): IUiState

sealed interface CoinIntent : IIntent {
    data class InitPageIntent(val coinInfo: CoinInfo) : CoinIntent
    data object BackClickIntent : CoinIntent

    data object ClickRankIntent : CoinIntent

    data class CoinRuleDialogVisibleChangeIntent(val visible: Boolean) : CoinIntent
}

sealed interface CoinUiEffect : IUiEffect {
    data object NavigationBackUiEffect : CoinUiEffect

    data object NavigationToCoinRankPageUiEffect : CoinUiEffect
}